CloudFrontで地域指定によるアクセス制御をしてみた。

CloudFrontで地域指定によるアクセス制御をしてみた。

Clock Icon2024.10.04

はじめに

こんにちは、 岩崎 です。

本記事では、CloudFrontの地域指定によるアクセス制御を試してみました。
国単位でアクセス制御ができるため、限定的にコンテンツを配信したい場合に使用できます。

やってみた

本記事の内容に入る前に、下記の記事を参考にCloudFront経由でS3の静的Webサイトを公開する手順を完了してください。
https://dev.classmethod.jp/articles/cloudfront-s3web/

アクセスできることを確認する。

アクセス制御の設定をする前に、作成したリソース(今回はWebサイト)にアクセスできることを確認します。
image.png

できること

CloudFrontの地域アクセス制御(Geo-restriction)は、特定の地理的位置からのコンテンツへのアクセスを制限または許可する機能です。この機能を使用することで、ウェブサイト所有者やコンテンツ配信者は、特定の国や地域からのアクセスを制御できます。

CloudFrontのコンソールから作成したディストリビューションを選択し、セキュリティのタブを開きます。
「CloudFront geographic restrictions」の ▶︎ をクリックします。
image.png

右のEditをクリックします。
この画面でアクセスを制限または許可する設定をします。
image.png

Allow list

まずは許可の設定から確認してみます。
Allow listを選択して、国を選択します。

まずは日本のみを許可して、変更を保存します。
image.png

保存ができたら、先ほどアクセスを確認したリソースに再度アクセスしてみます。
許可設定したので、問題なくアクセスできることが確認できます。
image.png

では、リストから日本を外し、他の国を追加して変更を保存してみます。
image.png
保存ができたら、再度アクセスしてみると、エラーページが表示されました
image.png

日本語翻訳すると、国単位のブロックがされていることがわかります。
image.png

Block list

次に、Block listを試してみます。
先ほど同様、日本を追加して、変更を保存します。
image.png
アクセスしてみると、しっかりとブロックされました。
image.png

次に、リストから日本を外し、他の国を追加して変更を保存します。
image.png

アクセスしてみると、正常にWebページが表示されました。
image.png

まとめ

本記事では、CloudFrontの地域指定によるアクセス制御機能について実践的に解説しました。この機能を使用することで、国単位でのコンテンツアクセスの許可や制限が簡単に行えることが確認できました。

主なポイントは以下の通りです:

  1. Allow list(許可リスト)とBlock list(禁止リスト)の2つの設定方法がある
  2. 設定はCloudFrontコンソールから簡単に行える
  3. 設定変更後、即座にアクセス制御が反映される
  4. 制限された地域からアクセスすると、専用のエラーページが表示される

この機能は、ライセンス制限のあるコンテンツの配信や、特定地域向けのサービス提供など、様々なユースケースで活用できます。ただし、VPNなどを使用すれば回避可能なため、より厳密な制御が必要な場合は追加のセキュリティ対策を検討する必要があります。

CloudFrontの地域指定によるアクセス制御は、グローバルなコンテンツ配信を行う上で非常に有用なツールです。ぜひ、自身のプロジェクトやサービスでの活用を検討してみてください。

参考になりましたら幸いです。

参考記事

https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/georestrictions.html

アノテーション株式会社について

アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.